home *** CD-ROM | disk | FTP | other *** search
- /*
- File: CappuccinoUtils.h
-
- Contains: Cappuccino utility functions & classes
-
- Written by: Steve Smith and Troy Gaul
-
- Copyright: © 1994 - 1995 by Apple Computer, Inc., all rights reserved.
- */
-
-
- #ifndef _CAPPUCCINOUTILS_
- #define _CAPPUCCINOUTILS_
-
- // --- OpenDoc Includes ---
-
- #ifndef _ODTYPES_
- #include <ODTypes.h>
- #endif
-
- // --- OpenDoc Utilities ---
-
- #ifndef _ITEXT_
- #include <IText.h> // for ODScriptCode and ODLangCode
- #endif
-
- // --- Macintosh Includes ---
-
- #ifndef __DIALOGS__
- #include <Dialogs.h> // for DialogPtr
- #endif
-
- //------------------------------------------------------------------------------
- // ODOptVirtual
- // This preprocessor symbol is used to control the use of virtual functions
- // for this class. It can be set to "virtual" if you want to have a class
- // where any of the functions may be overridden.
- //------------------------------------------------------------------------------
-
- #ifndef ODOptVirtual
- #define ODOptVirtual
- #endif
-
- //------------------------------------------------------------------------------
- // Forward Declarations
- //------------------------------------------------------------------------------
-
- class ODDraft;
- class ODFacet;
- class ODFocusSet;
- class ODWindow;
- class ODSession;
- class ODStorageUnit;
- class ODStorageUnitView;
-
- //------------------------------------------------------------------------------
- // Function Prototypes
- //------------------------------------------------------------------------------
-
- ODIText* GetPartName(Environment* ev, ODPart* part, ODType category);
- ODBoolean NamesAreEquivalent(Environment* ev, ODIText* fileName,
- ODIText* partName);
- void GetEditorScriptLanguage(Environment* ev, ODScriptCode* script,
- ODLangCode* language);
- void FixedToIntRect(ODRect& fixedRect, Rect& intRect);
- void IntToFixedRect(Rect& intRect, ODRect& fixedRect);
- void LoadThumbnail(Environment* ev, Handle* thumbnail);
- Rect TilePartWindow(Environment* ev, Rect* facetBounds,
- Rect* partWindowBounds);
- ODUShort CountFacets(Environment* ev, ODFrame* frame);
- ODBoolean HasAnyFocusInSet(Environment* ev, ODFrame* frame,
- ODFocusSet* set);
-
- void SetPreferredKind(Environment* ev, ODStorageUnit* su,
- ODValueType kind);
- ODISOStr DuplicateISOStr(ODISOStr string);
-
- ODBoolean HasSpeech();
- void SetDialogDefaults(DialogPtr dialog, ODUShort finfID,
- ODUShort index);
- pascal ODBoolean IntegerDialogFilter(DialogPtr dialog, EventRecord* event,
- short* itemHit);
-
- //==============================================================================
- // Utility Class Definitions
- //==============================================================================
-
- //------------------------------------------------------------------------------
- // CTempDialogState
- //------------------------------------------------------------------------------
-
- class CTempDialogState : Destructo {
-
- public:
- CTempDialogState(Environment *ev, ODSession *session);
- ~CTempDialogState();
-
- DialogPtr CreateDialog(ODSShort resID);
-
- private:
- Environment* fEv;
- ODSession* fSession;
- DialogPtr fDialogPtr;
- ODSLong fResRefNum;
- };
-
- //------------------------------------------------------------------------------
- // CFrameProxy (aka CFuton)
- //------------------------------------------------------------------------------
-
- class CFrameProxy {
-
- public:
-
- CFrameProxy();
- ~CFrameProxy();
-
- void InitFrameProxy(ODID frameID, ODDraft* draft);
- void InitFrameProxy(Environment* ev, ODFrame* frame);
- void Purge(Environment* ev);
-
- ODFrame* GetFrame(Environment* ev);
- void SetFrame(Environment* ev, ODFrame* frame);
- ODBoolean FrameIsLoaded(Environment* ev);
- ODID GetID();
- ODDraft* GetDraft();
-
- private:
-
- ODFrame* fFrame;
- ODDraft* fDraft;
- ODID fID;
- };
-
- //------------------------------------------------------------------------------
- // CFrameInfo
- //------------------------------------------------------------------------------
-
- class CFrameInfo {
-
- public:
- CFrameInfo(ODSession* session);
- ODOptVirtual ~CFrameInfo();
-
- // -- I/O --
-
- ODOptVirtual void Externalize(Environment* ev,
- ODStorageUnitView* storageUnitView);
- ODOptVirtual void CleanseFrameInfoProperty(Environment* ev,
- ODStorageUnit* storageUnit);
- ODOptVirtual void ExternalizeFrameInfo(Environment* ev,
- ODStorageUnit* storageUnit,
- ODDraftKey key, ODFrame* scopeFrame);
- ODOptVirtual void CloneInto(Environment *ev, ODDraftKey key,
- ODStorageUnitView* storageUnitView,
- ODFrame* scopeFrame);
- ODOptVirtual void InitFromStorage(Environment* ev,
- ODStorageUnitView* storageUnitView);
-
- // -- Frame activation --
-
- ODOptVirtual ODBoolean IsFrameActive();
- ODOptVirtual void SetFrameActive(ODBoolean active);
- ODOptVirtual ODBoolean FrameNeedsReactivating();
- ODOptVirtual void SetFrameReactivate(ODBoolean reactivate);
-
- // -- Facet activation --
-
- ODOptVirtual ODFacet* GetActiveFacet();
- ODOptVirtual void SetActiveFacet(ODFacet* facet);
-
- // -- Source frame --
-
- ODOptVirtual ODBoolean HasSourceFrame();
- ODOptVirtual void SetSourceFrame(Environment* ev, ODFrame* frame);
- ODOptVirtual ODFrame* GetSourceFrame(Environment* ev);
- ODOptVirtual void ReleaseSourceFrame(Environment* ev);
-
- // -- Dependent frame --
-
- ODOptVirtual ODBoolean HasDependentFrame();
- ODOptVirtual void SetDependentFrame(Environment* ev, ODFrame* frame);
- ODOptVirtual ODFrame* GetDependentFrame(Environment* ev);
- ODOptVirtual void ReleaseDependentFrame(Environment* ev);
-
- // -- Part window --
-
- ODOptVirtual ODWindow* AcquirePartWindow(Environment* ev);
- ODOptVirtual void SetPartWindow(Environment* ev, ODWindow* window);
-
- // -- Window disposal --
-
- ODOptVirtual void SetShouldDisposeWindow(ODBoolean should);
- ODOptVirtual ODBoolean ShouldDisposeWindow();
-
- // -- Part Info --
-
- static CFrameInfo* GetFrameInfo(Environment* ev, ODFrame* frame);
- static CFrameInfo* GetFrameInfo(Environment* ev, ODFacet* facet);
-
- private:
-
- CFrameInfo(); // don't want parts to call
-
- ODSession* fSession;
- ODFacet* fActiveFacet;
- CFrameProxy* fSourceFrame;
- CFrameProxy* fDependentFrame;
- ODID fPartWindowID;
- ODBoolean fFrameActive;
- ODBoolean fFrameReactivate;
- ODBoolean fShouldDisposeWindow;
- };
-
- //==============================================================================
- // Inline methods
- //==============================================================================
-
- //------------------------------------------------------------------------------
- // CFrameProxy
- //------------------------------------------------------------------------------
-
- inline CFrameProxy::CFrameProxy()
- {
- fFrame = kODNULL;
- fID = kODNULLID;
- fDraft = kODNULL;
- }
-
- inline ODID CFrameProxy::GetID()
- {
- return fID;
- }
-
- inline ODDraft* CFrameProxy::GetDraft()
- {
- return fDraft;
- }
-
- //-------------------------------------------------------------------------
- // CFrameInfo
- //-------------------------------------------------------------------------
-
- inline ODBoolean CFrameInfo::IsFrameActive()
- {
- return fFrameActive;
- }
-
- inline void CFrameInfo::SetFrameActive(ODBoolean active)
- {
- fFrameActive = active;
- }
-
- inline ODBoolean CFrameInfo::FrameNeedsReactivating()
- {
- return fFrameReactivate;
- }
-
- inline void CFrameInfo::SetFrameReactivate(ODBoolean reactivate)
- {
- fFrameReactivate = reactivate;
- }
-
- inline ODFacet* CFrameInfo::GetActiveFacet()
- {
- return fActiveFacet;
- }
-
- inline void CFrameInfo::SetActiveFacet(ODFacet* facet)
- {
- fActiveFacet = facet;
- }
-
- inline ODFrame* CFrameInfo::GetSourceFrame(Environment* ev)
- {
- return fSourceFrame->GetFrame(ev);
- }
-
- inline ODBoolean CFrameInfo::HasSourceFrame()
- {
- return (fSourceFrame != kODNULL);
- }
-
- inline ODFrame* CFrameInfo::GetDependentFrame(Environment* ev)
- {
- return fDependentFrame->GetFrame(ev);
- }
-
- inline ODBoolean CFrameInfo::HasDependentFrame()
- {
- return (fDependentFrame != kODNULL);
- }
-
- inline void CFrameInfo::SetShouldDisposeWindow(ODBoolean should)
- {
- fShouldDisposeWindow = should;
- }
-
- inline ODBoolean CFrameInfo::ShouldDisposeWindow()
- {
- return fShouldDisposeWindow;
- }
-
- #endif
-
-